package ve.usb.cep.actions;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

import java.util.Map;
import ve.usb.cep.db.domainObjects.Usuario;
import ve.usb.cep.db.models.UsuarioModel;
import ve.usb.cep.db.modelExceptions.UsuarioException;
 
public class RecordarA extends ActionSupport {

    private String correo = "";
    protected Usuario u;
    private String attempt = "0";

    @Override
    public String execute()
        throws java.sql.SQLException,
               java.security.NoSuchAlgorithmException,
               java.io.UnsupportedEncodingException
    {

        if (!attempt.equals("1")){
            return "input";
        }

        Map session = ActionContext.getContext().getSession();
        session.put("usuario", u);
        
        return "success";
    }
    
    @Override
    public void validate() {

       if (!getAttempt().equals("1")){
           return;
       }

       if (getCorreo().length() == 0) {
           addFieldError("correo", "El email es obligatorio");
           return;
       }
       
       try{
            u = new UsuarioModel().getByCorreo(getCorreo());
        }catch(UsuarioException e){
            //Nunca deberíamos alcanzar este lugar
            addActionError("Error en la base de datos");
            e.printStackTrace();
        }

        if (null == u) {
            addActionError("El usuario no es válido");
            return;
        }
    }

    public String getCorreo() {
        return this.correo;
    }
    public void setCorreo(String correo) {
        this.correo = correo;
    }
    
    public String getAttempt() {
        return this.attempt;
    }
    public void setAttempt(String correo) {
        this.attempt = correo;
    }
}
